package com.neusoft.service;

import com.neusoft.dto.MedicalTechnologyDto;
import com.neusoft.utils.Result;

import java.util.List;

/**
 * @author akemihomurasama
 */
public interface MedicalTechnologyService {
    /**
     * 查询医技项目数量，根据分类查询
     *
     * @param techType 医技项目分类
     * @return 数量
     */
    Result queryTecNum(String techType);

    /**
     * 根据分类查询医技项目列表
     *
     * @param techType 分类
     * @return 列表
     */
    Result queryTechByType(String techType);

    /**
     * 根据病人id和医技项目id查询医技项目列表
     *
     * @param registerId 医技项目id列表
     * @return 医技项目列表
     */
    Result queryAllTechByPatient(int registerId);

    /**
     * 根据患者id查询医技项目和对应的申请的状态
     *
     * @param registerId 医技项目
     * @return 查询结果
     */
    Result queryTechWithState(int registerId);

    /**
     * 患者取消检查、检验、处置退款
     *
     * @param registerId 患者id
     * @return 修改结果
     */
    Result queryPayedTech(int registerId);

    /**
     * 根据申请状态和患者id查询申请列表
     * @param registerId 患者id
     * @param state 申请状态
     * @return 申请列表
     */
    Result queryTechByStateWithRequestId(int registerId, String state);

    /**
     * 同时根据申请id修改申请状态为已退费
     * @param medicalTechnologyDtoList 申请列表
     * @return 修改结果
     */
    Result techGiveUpMoney(List<MedicalTechnologyDto> medicalTechnologyDtoList);
}
